﻿using Abp.Application.Services.Dto;
using Mt.Site.Application.Organizations.Dto;
using Mt.Site.Core.Common.Cache;
using Mt.Site.Core.Organizations.UserCache.Models;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Mt.Site.Application.Common
{
    public interface IUserRoleUnitSelectionAppService:IBackEndAppService
    {
        /// <summary>
        /// 供树状结构使用
        /// </summary>
        /// <returns></returns>
        Task<List<SimpleOrganinzationUnitDto>> GetOrganizationUnitsAsync();


        /// <summary>
        /// 调整了排序，供下拉选择使用
        /// </summary>
        /// <returns></returns>
        Task<List<UnitSelectionData>> GetAllOrganizationUnitsForSelectionAsync();

        /// <summary>
        /// 只拉取一级栏目（一般一级为 分公司清单）
        /// </summary>
        /// <returns></returns>
        Task<List<SimpleOrganinzationUnitDto>> GetAllLv1UnitsAsync();

        Task<UserInfoDto> GetUserInfoAsync();

        Task<List<UserOrganinzedCacheItem>> GetUserOrganinzationAsync();


        Task<UserInfoDto> GetUserInfoById(EntityDto<long> input);

        Task<SpecialUserData> GetSpecialLeaderUserAsync();
    }
}
